package br.edu.ufcg.unknown.semantico;


public class Atributo implements Cloneable {

	/**
	 * Lexema do Símbolo
	 */
	private String nome;

	/**
	 * Tipo do Símbolo. Ex: INTEGER, BOOLEAN, STRING, ARRAY ... "TIPO"
	 */
	private Tipo tipo;

	/**
	 * Valor assumido pelo Símbolo
	 */
	private String valor;

	private Atributo() {
		
	}
	
	public Atributo(String nome, Tipo tipo) {
		this.nome = nome;
		this.tipo = tipo;
		this.valor = null;
	}



	public String getNome() {
		return this.nome;
	}

	public Tipo getTipo() {
		return tipo;
	}

	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}

	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		this.valor = valor;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Atributo clone(){
		Atributo r = new Atributo();
		r.nome = this.nome;
		r.tipo = this.tipo != null ? this.tipo.clone() : null;
		r.valor = this.valor;
		
		return r;
	}
}
